1. Technical Field
This invention generally relates to the data processing field. More specifically, this invention relates to the field of order processing using computers.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
Computer systems have become widely used to process orders for goods and services. When a company sells products that it manufactures, an order fulfillment system is often used to enter and process orders so that goods and services may be delivered to the customer in an efficient manner. The hardware and software configurations of order fulfillment systems that are currently being used is vast and diverse, and are typically custom-programmed for a company""s particular needs and products.
Some companies market products that they do not themselves manufacture. For example, catalog companies may have several items that they do not stock, but instead place an order to a manufacturer or distributor when a customer places an order for that item. For example, let""s assume that a customer in browsing a catalog decides to place an order for a suitcase, a baseball cap, and four pairs of socks. Let""s further assume that each of these products is available from different manufacturers or distributors (also referred to herein as xe2x80x9cproduct providersxe2x80x9d). Prior art systems require that the customer""s order be parsed into three separate orders, one for each product provider. However, the order fulfillment system for each of these product providers is likely very different, so each order must be customized to comply with the protocol for ordering from that product provider. Let""s assume for our example that the suitcase is available from Company A, which we assume has an automated order fulfillment system implemented using the SanFrancisco framework available from IBM. Let""s further assume that the baseball cap is available from Company B, which also has an automated order fulfillment system implemented using SAP software. Let""s also assume that the socks are available from Company C, which has a manual order fulfillment system that requires that orders are placed via facsimile (fax). With these assumptions, the single order is manually parsed into three separate orders that comply with the order entry protocol for each order fulfillment system. This requires that the order entry system have intimate knowledge regarding the order processing details for each potential order fulfillment system. For a catalog company, the number of different fulfillment systems can be very large, and can constantly change as products are added to or deleted from the catalog. Without a an order entry mechanism that presents a uniform order entry interface and that processes orders by automatically generating orders for each selected order fulfillment system, the computer industry will continue to suffer the drawbacks of extensively revising the computer code for order fulfillment systems when additions, deletions, or changes to order fulfillment systems are made.
According to the preferred embodiments, an object oriented framework defines a generic order processing interface that creates an order, and that processes the order and generates requests to one or more fulfillment systems to fill the order. The generic order suitably includes one or more line items. One or more extensible interface classes are provided in the framework, which allows a user to define the order entry protocol for the relevant order fulfillment systems. Once properly extended, the framework is used to generate an executable framework application, which allows a client to enter a generic order, and which then generates the appropriate requests to fill the order with the appropriate order fulfillment system or systems. The framework of the preferred embodiments thus allows the specific knowledge of the back-end order fulfillment systems to be isolated to the extended portions of the framework, while the front-end order entry system has no knowledge of the order fulfillment systems that may be called upon to fill an order. The framework of the present invention thus allows adding a new order fulfillment system by simply extending the framework to define the attributes of the new fulfillment system without making changes to the core portion of the framework that governs how generic orders are processed.